import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.SwingConstants;

import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JSeparator;

public class VueConsultLecteur extends Vue {

	private static final long serialVersionUID = 1L;
	private JPanel contentPane;
	private JTextField textFieldNom;
	private JTextField textFieldPrenom;
	private JTextField textFieldAdresse;
	private JTextField textFieldTelephone;
	private JTextArea textArea;
	private JButton buttonRechercher;
	private JButton buttonAnnuler;
	private JButton buttonFermer;
	private JTextField textFieldNumeroLecteur;
	private JTextArea txtrArticle;
	
	/**
	 * Create the frame.
	 */
	public VueConsultLecteur(Controleur controleur) {
		super(controleur);
		setTitle("Consulter un lecteur");
		//setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); 
		setBounds(100, 100, 468, 596);
		contentPane = new JPanel();
		
		this.addWindowListener (new WindowAdapter() {
			public void windowClosing (WindowEvent e) {
			getControleur().fermerVue(VueConsultLecteur.this);
			}
		});
		
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		
		JLabel numeroLecteur = new JLabel("Numéro du lecteur");
		numeroLecteur.setHorizontalAlignment(SwingConstants.RIGHT);
		numeroLecteur.setBounds(23, 36, 121, 15);
		contentPane.add(numeroLecteur);
		
		JLabel lblPrnom = new JLabel("Prénom");
		lblPrnom.setHorizontalAlignment(SwingConstants.RIGHT);
		lblPrnom.setBounds(83, 215, 61, 15);
		contentPane.add(lblPrnom);
		
		JLabel lblNewLabel = new JLabel("Adresse");
		lblNewLabel.setHorizontalAlignment(SwingConstants.RIGHT);
		lblNewLabel.setBounds(83, 245, 61, 15);
		contentPane.add(lblNewLabel);
		
		JLabel lblNewLabel_1 = new JLabel("Téléphone");
		lblNewLabel_1.setHorizontalAlignment(SwingConstants.RIGHT);
		lblNewLabel_1.setBounds(70, 277, 78, 15);
		contentPane.add(lblNewLabel_1);
		
		textFieldNom = new JTextField();
		textFieldNom.setEditable(false);
		textFieldNom.setColumns(10);
		textFieldNom.setBounds(162, 182, 141, 19);
		contentPane.add(textFieldNom);
		
		textFieldPrenom = new JTextField();
		textFieldPrenom.setEditable(false);
		textFieldPrenom.setColumns(10);
		textFieldPrenom.setBounds(162, 213, 141, 19);
		contentPane.add(textFieldPrenom);
		
		textFieldAdresse = new JTextField();
		textFieldAdresse.setEditable(false);
		textFieldAdresse.setColumns(10);
		textFieldAdresse.setBounds(162, 244, 141, 19);
		contentPane.add(textFieldAdresse);
		
		textFieldTelephone = new JTextField();
		textFieldTelephone.setEditable(false);
		textFieldTelephone.setColumns(10);
		textFieldTelephone.setBounds(162, 275, 141, 19);
		contentPane.add(textFieldTelephone);
		
		buttonRechercher = new JButton("Rechercher");
		buttonRechercher.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				getControleur().rechLecteur(Integer.parseInt(textFieldNumeroLecteur.getText()));
				}
		});		
		buttonRechercher.setBounds(274, 65, 107, 25);
		contentPane.add(buttonRechercher);
		
		buttonAnnuler = new JButton("Annuler");
		buttonAnnuler.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
			getControleur().fermerVue(VueConsultLecteur.this);}
		});		
		buttonAnnuler.setBounds(274, 102, 107, 25);
		contentPane.add(buttonAnnuler);
		
		JLabel lblNom = new JLabel("Nom");
		lblNom.setHorizontalAlignment(SwingConstants.RIGHT);
		lblNom.setBounds(23, 184, 121, 15);
		contentPane.add(lblNom);
		
		textFieldNumeroLecteur = new JTextField();
		textFieldNumeroLecteur.setColumns(10);
		textFieldNumeroLecteur.setBounds(162, 34, 141, 19);
		contentPane.add(textFieldNumeroLecteur);
		
		buttonFermer = new JButton("Fermer");
		buttonFermer.setEnabled(false);
		buttonFermer.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				getControleur().fermerVue(VueConsultLecteur.this);
				
			}
		});
		buttonFermer.setBounds(162, 465, 107, 25);
		contentPane.add(buttonFermer);
		
		JScrollPane scrollPane = new JScrollPane();
		scrollPane.setBounds(34, 328, 399, 96);
		contentPane.add(scrollPane);
		
		textArea = new JTextArea();
		textArea.setEditable(false);
		scrollPane.setColumnHeaderView(textArea);
		
		txtrArticle = new JTextArea();
		txtrArticle.setBounds(37, 329, 396, 93);
		contentPane.add(txtrArticle);
		txtrArticle.setEditable(false);
		
		JSeparator separator = new JSeparator();
		separator.setBounds(70, 152, 300, 2);
		contentPane.add(separator);
		
	}
	
	public void alimente(Lecteur lect) {
		textFieldNom.setText(lect.getNomLecteur());
		textFieldPrenom.setText(lect.getPrenomLecteur());
		textFieldAdresse.setText(lect.getAdrLecteur());
		textFieldTelephone.setText(lect.getTelLecteur());
		textArea.setText("");
		for (Emprunt emprunt : lect.getEmprunts()) {
			  textArea.append("Le " + emprunt.getDateEmprunt() + " : " + emprunt.getExemplaire().getOuvrage().getTitre() + 
					  		  ", de " + emprunt.getExemplaire().getOuvrage().getAuteur());
		}
}
	
	public void setEtat (int etat){
		switch (etat) {
		case initiale: {	
			buttonRechercher.setEnabled(true);
			buttonAnnuler.setEnabled(true);
			break;
			}
		case finale: {
			buttonRechercher.setEnabled(false);
			buttonAnnuler.setEnabled(false);
			buttonFermer.setEnabled(true);
			break;
		}
		
		}
	}
}
